﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using Sispe.Entities;
using Sispe.BussinesLogic;
using Microsoft.Practices.Unity;

namespace Sispe.UI
{
    public partial class FrmRelacionDerechoHabientes : Form
    {
        [Dependency]
        public IDerechoHabienteBL derechoBL { get; set; }

        [Dependency]
        public ITrabajadorBL trabBL { get; set; }
        public FrmRelacionDerechoHabientes()
        {
            InitializeComponent();
            this.BuildUp();
        }

        public TRABAJADOR CurrentTrabajador { get; set; }
       
        private void btnEditar_Click(object sender, EventArgs e)
        {
            var currentDerechoHabiente = dERECHO_HABIENTEBindingSource.Current as DERECHO_HABIENTE;
            ESTADO_CIVIL estCivil = new ESTADO_CIVIL();
            SEXO sexo = new SEXO();
            currentDerechoHabiente.PERSONA.ESTADO_CIVIL = estCivil;
            currentDerechoHabiente.PERSONA.SEXO = sexo;
            currentDerechoHabiente.PERSONA.TRABAJADOR = CurrentTrabajador;
            currentDerechoHabiente.PERSONA.FechaNacimiento = CurrentTrabajador.PERSONA.FechaNacimiento;
            currentDerechoHabiente.PERSONA.ESTADO_CIVIL.Descripcion = CurrentTrabajador.PERSONA.ESTADO_CIVIL.Descripcion;
            currentDerechoHabiente.PERSONA.SEXO.Descripcion = CurrentTrabajador.PERSONA.SEXO.Descripcion;

            if (currentDerechoHabiente != null)
            {
                FrmMttoDerechoHabiente frm = new FrmMttoDerechoHabiente();
                //frm._derecho = currentDerechoHabiente;
                frm.EditarDerechoHabTrab(currentDerechoHabiente.IdDerechoHabiente);
                frm.ShowDialog();
            }
            
            else
            {
                MessageBox.Show("Seleccione un Item");
            }
            Cargardatos();                
        }

        private void btnNuevo_Click(object sender, EventArgs e)
        {
            FrmMttoDerechoHabiente frm = new FrmMttoDerechoHabiente();
            frm.CurrentTrabajador = CurrentTrabajador;
            frm.NuevoDerechoHab();
            frm.ShowDialog();
            Cargardatos();
        }

        private void FrmRelacionDerechoHabientes_Load(object sender, EventArgs e)
        {
            Cargardatos();            
        }

        void Cargardatos()
        {
            LTrabajador.Text = CurrentTrabajador.PERSONA.NombreCompleto;
            dERECHO_HABIENTEBindingSource.DataSource = derechoBL.GetFromDerechoHabienteByIdTrabajador(CurrentTrabajador.Id);
        }

        private void btnactualizar_Click(object sender, EventArgs e)
        {
            Cargardatos();
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            var derhab = dERECHO_HABIENTEBindingSource.Current as DERECHO_HABIENTE;

            if (derhab != null)
            {
                if (derhab.IdDerechoHabiente <=0)
                {
                    MessageBox.Show("No tiene permisos para eliminar", "Mensaje", MessageBoxButtons.OK);
                }
                else
                {
                    var rpt = MessageBox.Show(this,
                        string.Format("¿Desea Eliminar el Derecho habiente: " + derhab.PERSONA.NombreCompleto + "?"),
                        "Mensaje",
                        MessageBoxButtons.YesNo,
                        MessageBoxIcon.Question);
                    if (rpt == DialogResult.Yes)
                    {
                        derechoBL.RemoveDerechoHabiente(derhab.IdDerechoHabiente);
                        Cargardatos();
                    }
                }
            }
            else
            {
                MessageBox.Show("Debe seleccionar un Regimen de Salud.", "Mensaje", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
        }
    }
}
